Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

153
Vistas
La redirección de PHP a una URL diferente usando el encabezado ("Ubicación:") no funciona

Soy bastante nuevo en php, investigué un poco y probé la solución de otra persona, pero no funcionó para mí. Quiero redirigir a los usuarios a otra página después de que se haya ejecutado cierto código. Me di cuenta de que no hay mensajes de error y el sitio no cambia. Así que eliminé casi todo del código y lo puse en un pequeño archivo test.php. El mismo problema persiste.

 <!DOCTYPE html> <html> <body> <h1>Tes2</h1> <?php // Execute some code here sleep(10); // Give the user 10 seconds to read the output of my code // redirect the user with php or trigger a JS script to do that header("Window-target: _parent"); header("Location: https://www.w3schools.com/"); ?> </body> </html>

Expectativa: la página debe ejecutar el script php principal (visualizado por el comentario) y activar un temporizador. Cuando termine el temporizador, debería redirigirme a "www.w3schools.com". No debe haber errores u otros mensajes. La redirección debe realizarse mediante el código php, si es posible (JS sería una forma posible de resolver esto, pero aún necesitaría iniciar el código JS después de que se haya ejecutado mi código php).

Resultado: la página aparece y carga el código html. El sitio permanece y no cambia. No hay errores.

Entorno: se ejecuta en Chromium versión 96.0.4664.45 (compilación de Offizieller) para Linux Mint (64 bits) El sitio web es funcional y ejecutó el código PHP como se esperaba, pero no este.

¿Existe una solución ligera y universal (para los navegadores más populares) que redirija a los usuarios a otra página?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Los encabezados deben configurarse antes de que se transmitan los datos, por lo que no puede simplemente pegarlos en el medio de un archivo. Citando el manual :

Recuerde que se debe llamar a header() antes de enviar cualquier salida real, ya sea mediante etiquetas HTML normales, líneas en blanco en un archivo o desde PHP.

Entonces, como mínimo, deberá volver a escribir su archivo para:

 <?php header("Window-target: _parent"); header("Location: https://www.w3schools.com/"); ?> <!doctype html> ...

Además, nunca sleep() en una respuesta http(s): esa respuesta debería terminar lo más rápido posible, sin importar el contenido que necesite generar. El sueño no tiene cabida en (realmente ningún) código PHP.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Una combinación de PHP y JS parece ser la solución más fácil. Pero eso podría ser sólo mi opinión. Traté de documentar el código lo mejor posible, para que otros puedan entenderlo:

 <?php function redirect() { // Create some JS code which will pause for 3 seconds and execute the move function afterwards. This Function will redirect the user echo "<script>"; echo "function move() {window.location.replace('http://www.w3schools.com');}"; echo "setTimeout(move, 3000);"; echo "</script>"; } ?> <!DOCTYPE html> <html> <head> </head> <body> <h1>Test2</h1> <?php echo "<p>You will be redirected after the code has been executed!</p>"; // Run actual code redirect(); // Redirect using JS code ?> </body> </html>
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda